Inspection program editing environment with editing environment automatically globally responsive to editing operations in any of its portions

ABSTRACT

A system is provided for programming workpiece feature inspection operations for a coordinate measuring machine. The system includes a computer-aided design (CAD) file processing portion and a user interface comprising a 3D view, and editable plan representation. Both the 3D view and the editable plan representation are configure to be automatically responsive to operations in a first set of editing operations, regardless of whether the operations are performed in the 3D view or the editable plan representation of the user interface. The first set of editing operations may comprise deleting (or adding) at least one workpiece feature in the 3D view or the editable plan representation of the user interface, for example. Various other portions of the system (e.g. other user interface windows) may also be automatically responsive to the first set of editing operations, regardless of where the editing operations are performed in the user interface.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation-in-part of U.S. patent applicationSer. No. 14/682,976, entitled “Inspection Program Editing EnvironmentIncluding Real Time Feedback Related to Throughput” filed on Apr. 9,2015, the disclosure of which is hereby incorporated by reference in itsentirety.

BACKGROUND

Technical Field

This disclosure relates to precision metrology, and more particularly toediting inspection programs for coordinate measuring machines.

Description of the Related Art

Certain metrology systems, including coordinate measurement machines(CMMs), can be utilized to obtain measurements of inspected workpiecesand may be controlled at least in part by workpiece feature inspectionoperations that have been programmed on a computer. One exemplary priorart CMM is described in U.S. Pat. No. 8,438,746, which is herebyincorporated by reference in its entirety. As described in the '746patent, the CMM includes a probe for measuring a workpiece, a movementmechanism for moving the probe, and a controller for controlling themovement mechanism.

A CMM that includes a surface scanning probe is described in U.S. Pat.No. 7,652,275 (the '275 patent), which is hereby incorporated herein byreference in its entirety. After a scan, a three-dimensional profile ofthe workpiece is provided. The workpiece may be measured by a mechanicalcontact probe scanning along the workpiece surface, or by an opticalprobe which scans a workpiece without physical contact. Optical probesmay be of a type that may use points of light for detecting surfacepoints (such as triangulation probes), or a type that uses a videocamera, wherein the coordinates of geometric elements of the workpieceare determined via image processing software. A “combined” CMM that usesboth optical and mechanical measuring is described in U.S. Pat. No.4,908,951, which is hereby incorporated herein by reference in itsentirety.

In all of the above described CMMs, operations may be programmed forinspecting workpiece features. Such programmed operations may generallybe reviewed to see which workpiece features are being inspected and inwhat order, and may also be edited by adding, removing or otherwisealtering particular program elements operations that are associated withparticular workpiece features. However, in existing CMM programmingsystems, such reviewing and editing operations are not always easy for auser to perform or to understand. For example, it may be difficult for auser to track where and how such programmed operations fit within anoverall inspection plan, different windows may be provided withdifferent types of information about the programmed operations, and itmay difficult to understand the various effects that certain types ofedits may produce relative to altering the efficiency or effectivenessfor the inspection of a particular workpiece feature or for the overallinspection plan. A need exists for a system and/or user interfacefeatures which allow such understanding in an immediate and intuitivemanner during inspection program creation, review and/or editing for aCMM.

BRIEF SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features ofthe claimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

A system is provided for programming workpiece feature inspectionoperations for a coordinate measuring machine. The coordinate measuringmachine (CMM) may include at least one sensor used for determiningworkpiece feature measurement data, a stage for holding a workpiecewherein at least one of the sensor or the stage are movable relative toone another, and a CMM control portion. The system includes acomputer-aided design (CAD) file processing portion and a userinterface. The computer-aided design (CAD) file processing portioninputs a workpiece CAD file corresponding to a workpiece and analyzesthe file to automatically determine inspectable workpiece features onthe workpiece corresponding to a plurality of geometric feature types.

In various implementations, the user interface may include a workpieceinspection program simulation portion configurable to display a 3-D viewincluding at least one of workpiece features on the workpiece andinspection operation representations corresponding to inspectionoperations to be performed on workpiece features according to a currentworkpiece feature inspection plan; and an editing user interface portioncomprising an editable plan representation of the current workpiecefeature inspection plan for the workpiece corresponding to the CAD file,the editable plan representation comprising at least one of workpiecefeatures or inspection operation representations.

In various embodiments, the system is configured with both of the 3Dview and the editable plan representation being automatically responsiveto editing operations included in a first set of editing operations,regardless of whether the editing operations included in the first setof editing operations are performed in the 3D view or the editable planrepresentation of the user interface. The first set of editingoperations comprises deleting (or adding) at least one workpiece featurein the 3D view or the editable plan representation of the userinterface. The 3D view and the editable plan representation are bothautomatically responsive to deleting (or adding) the at least oneworkpiece feature in the 3D view or the editable plan representation theuser interface, by automatically deleting (or adding) the at least oneworkpiece feature and associated inspection operations in both the 3Dview and the editable plan representation.

The system may include an inspection path/sequence manager. Theinspection path/sequence manager may be also be automatically responsiveto editing operations included in a first set of editing operations asdescribed in greater detail below, regardless of whether the editingoperations included in the first set of editing operations are performedin the 3D view or the editable plan representation of the userinterface.

The system user interface may also include a program view portion. Theprogram view portion may be also be automatically responsive to editingoperations included in a first set of editing operations, regardless ofwhether the editing operations included in the first set of editingoperations are performed in the 3D view or the editable planrepresentation of the user interface, or in the program view portionitself. In some embodiments, the program view may be regarded as a“secondary” editable inspection plan representation, as described ingreater detail below.)

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing various typical components of a metrologysystem comprising a CMM;

FIGS. 2A and 2B are diagrams showing various elements of a oneembodiment of a computing system on which workpiece feature inspectionoperations may be programmed for the CMM of FIG. 1;

FIG. 3 is a diagram of a user interface in which all of the workpiecefeatures of an editable plan representation are included in a set ofworkpiece features to be inspected according to the plan;

FIG. 4 is a diagram of a user interface in which some of the workpiecefeatures of FIG. 3 have been unselected so as to be excluded from theset of workpiece features to be inspected according to the plan;

FIG. 5 is a diagram of a user interface in which some of the excludedworkpiece features of FIG. 4 have been reselected so as to be reincludedin the set of workpiece features to be inspected according to the plan;

FIG. 6 is a diagram of a user interface displaying the end of aworkpiece feature inspection plan;

FIG. 7 is a diagram of a user interface in which additional detail isdisplayed regarding the editable plan representation and an examplecylindrical workpiece feature is highlighted;

FIG. 8 is a diagram of a user interface in which additional detail isdisplayed regarding the editable plan representation and an exampleplanar workpiece feature is highlighted;

FIG. 9 is a diagram of a user interface illustrating a state of theeditable plan representation prior to a sequence editing operation beingperformed;

FIG. 10 is a diagram of a user interface illustrating a state of theeditable plan representation after performing a sequence editingoperation;

FIG. 11 is a flow diagram illustrating one exemplary implementation of aroutine for operating a user interface with real-time feedback relatedto throughput;

FIG. 12 is a flow diagram illustrating one exemplary implementation of aroutine for operating a user interface with simulation status andcontrol responsive to selection operations;

FIG. 13 is a flow diagram illustrating one exemplary implementation of aroutine for selection operations performed in a 3-D view;

FIG. 14 is a flow diagram illustrating one exemplary implementation of aroutine for adjusting a simulation status portion;

FIG. 15 is a flow diagram illustrating one exemplary implementation of aroutine for utilizing a simulation animation control portion;

FIG. 16 is a flow diagram illustrating one exemplary implementation of aroutine for selection operations performed in an editable planrepresentation;

FIG. 17 is a diagram of a user interface illustrating a state of aneditable plan representation, a 3D view, and a program view prior toselecting or indicating a target feature for an editing operation asdisclosed herein;

FIG. 18 is a diagram of a user interface illustrating a state of aneditable plan representation, a 3D view, and a program view afterselecting or indicating a target feature for an editing operation asdisclosed herein;

FIG. 19 is a diagram of a user interface illustrating a state of aneditable plan representation, a 3D view, and a program view afterperforming an operation that enables performing a feature deletingediting operation as disclosed herein; and

FIG. 20 is a diagram of a user interface illustrating a state of aneditable plan representation, a 3D view, and a program view afterperforming the feature deleting editing operation shown in FIG. 19.

DETAILED DESCRIPTION

FIG. 1 is a diagram showing various typical components of a metrologysystem 1 including a generic CMM, which provides one context forapplication of the principles disclosed herein. Certain aspects of themetrology system 1 are further described in the '746 patent. Themetrology system 1 may include: a CMM body 2; a motion controller 3 thatcontrols a drive of the coordinate measuring machine body 2; anoperating unit 4 for manually operating the coordinate measuring machinebody 2; a host computer 5 that issues commands to the motion controller3 and executes processing such as for the inspection of features on aworkpiece 10 (an object to be measured) disposed on the CMM body 2. Arepresentative input unit 61 and output unit 62 are connected to thehost computer 5, as well as a display unit 5D. The display unit 5D maydisplay a user interface, for example as described further below withrespect to FIGS. 3-10.

The CMM body 2 may include: a probe 21 having a stylus 21T which maycontact a surface of the workpiece 10; a movement mechanism 22 thatincludes a three-axis slide mechanism 24 that holds the base end of theprobe 21; a measurement stage 23 that holds the workpiece 10 and onwhich a drive mechanism 25 moves the slide mechanism 24. In variousimplementations, the drive mechanism 25 may be controlled by a CMMcontrol portion (e.g., including the motion controller 3). As will bedescribed in more detail below, in various implementations one or moresensors of the CMM (e.g., including the probe 21 and/or stylus 21T) maybe moved relative to the measurement stage 23 (e.g., as controlled bythe motion controller 3) and utilized for determining workpiece featuremeasurement data (e.g., with regard to physical dimensions of featuresof the workpiece 10).

FIGS. 2A and 2B are diagrams of a computing system 105 including oneembodiment of a programming portion 202 on which workpiece featureinspection operations may be programmed for a CMM (e.g., the CMM body 2of FIG. 1). As shown in FIG. 2A, in various implementations thecomputing system 105 (e.g., the computer 5 of FIG. 1 or a separatecomputer) may include a memory portion 170, a display portion 175, aprocessing portion 180, an input-output devices portion 185 and theprogramming portion 202. The memory portion 170 includes residentprograms and other data utilized by the computing system 105. Thedisplay portion 175 provides the display for the computing system 105(e.g., similar to the display unit 5D of FIG. 1), including the featuresprovided by the programming portion 202. The processing portion 180provides for the signal processing and control of the computing system105, while the input-output devices portion 185 receives and providescontrol signals and outputs to and from various devices (e.g., the CMMcontroller 3 of FIG. 1).

As shown in FIGS. 2A and 2B, in one embodiment, the programming portion202 includes a CAD file processing portion 205, an inspection pathand/or sequence manager 206, a plan view editing user interface portion210, a 3-D view portion 220, a program view editing user interfaceportion 230, a first set of operations portion 240, which may include aninspection plan modification notices portion 249, another operationsportion 250, a programming environment synchronization and/or noticesmanager 260, an execution time portion 270, and a simulation status andcontrol portion 280. In various implementations, the computer-aideddesign (CAD) file processing portion 205 inputs a workpiece CAD filecorresponding to a workpiece (e.g., the workpiece 10 of FIG. 1) andanalyzes the file to automatically determine inspectable workpiecefeatures on the workpiece corresponding to a plurality of geometricfeature types (e.g., cylinder, plane, sphere, cone, etc.) and theinspection path/sequence manager 206 may automatically determine amotion control path that allows the CMM to obtain measurements thatcharacterize the workpiece features. Methods usable for implementing theCAD file processing portion 205 and/or the inspection path/sequencemanager 206 are known in the art, as exemplified in various commercialCAD products, and/or in CAD “extension programs” for creating inspectionprograms and/or other known CMM inspection programming systems and/orsystems which automatically generate machine tool programs from CADdata. For example, U.S. Pat. Nos. 5,465,221; 4,901,253; 7,146,291;7,783,445; 8,302,031; 5,471,406 and 7,058,472, each of which is herebyincorporated herein in their entirety, disclose various methods whichmay be used to analyze CAD data and determine geometric features of aworkpiece and then automatically generate a motion control path forplacing a probe or sensor at inspection points that measure orcharacterize the geometric features. European Patent Number EP1330686also provides relevant teachings. In some embodiments, determining thegeometric features may simply comprise extracting or recognizing thecategorized geometric features inherently defined in some modern CADsystems. In some embodiments, product and manufacturing information(PMI, for short) is present in the CAD data, and may be used in theaforementioned processes. PMI conveys non-geometric attributes in CADdata, and may include geometric dimensions and tolerances, surfacefinish, and the like. In some embodiments, in the absence of PMI,default tolerances and other default inspection rules may be used inautomatic operations of the CAD file processing portion 205 and theinspection path/sequence manager 206.

The motion control path may generally define a feature inspectionsequence as well as individual inspection points (e.g., touch probemeasurement points, or non-contact measurement points, or point clouddetermination regions, etc.), as well as the motion path between suchpoints. The sequence and motion path planning may follow simple rulesthat avoid collisions in some embodiments, or more complicated rules orprocesses that both avoid collisions and optimize motion path length orinspection time in other embodiments. In some embodiments, the CAD fileprocessing portion 205 may include the inspection path/sequence manager206, or they may be merged and/or indistinguishable. Applicableautomatic path planning methods may be found in commercial productsand/or the previously cited references, as well as in numerous technicaland/or academic articles. In one embodiment, one or both of theaforementioned automatic processes may be automatically triggered when atarget CAD file is identified in the programming portion 202. In otherembodiments, one or both of the aforementioned automatic processes maybe triggered in relation to a target CAD file based on operator inputthat initiates the processes. In other less desirable embodiments,similar processes may be semi-automatic and require user input in theprogramming portion 202 for certain operations or decisions.

In any case, in various embodiments the aforementioned processes may, ineffect, be used to provide a comprehensive inspection plan and/orinspection program for a workpiece. In some contexts, the connotationsof the term “inspection plan” may encompass primarily what features areto be inspected and what measurements are to be made on each, and inwhat sequence, and the connotations of the term “inspection program” mayprimarily encompass how the inspection plan is to be accomplished on aparticular CMM configuration (e.g., following the “instructions”inherent in the inspection plan, but also including the motion speedsand path, the probe or sensor to be used, and so on for a defined CMMconfiguration.) Other portions of the programming portion 202 may usethe results of the CAD file processing portion 205 and the inspectionpath/sequence manager 206 to perform their operations and populateand/or control their associated user interface portions, and the like.As shown in FIG. 2B, the plan view editing user interface portion 210includes an editable plan representation 212 of a workpiece featureinspection plan for the workpiece corresponding to the CAD file. Invarious implementations, the program view editing user interface portion230 may also (or instead) include an editable plan representation 232,as will be described in more detail below with respect to FIGS. 3-10.

Although it has been known to attempt to automatically generate aninspection plan and/or inspection program, subsequent editing andvisualization of that plan and/or program have not been sufficientlyintuitive or easy to use—particularly for relatively unskilled users. Inparticular, visualization of the effect of editing changes to the planand/or program has not been immediately or continuously available in theuser interface (e.g., through a displayed “3-D” simulation or movinganimation). Rather, it has been typical to require the user to activatea special mode or display window that is not normally active in realtime during editing operations in order to see a “recording” orspecially generated simulation of the CMM running the edited inspectionprogram. Similarly, the effect of editing changes to the plan and/orprogram on the total execution time of the inspection plan or programhas not been immediately or continuously available in real time in theuser interface during editing operations. Both types of “results”feedback—“immediate” visual confirmation of the editing results in a 3-Dsimulation or animation view, and/or immediate confirmation of theediting results on the total execution time—may be critical to theacceptance of an editing operation. For example, the total executiontime relates directly to the inspection throughput of a CMM, whichdetermines its cost of ownership and/or ability to support a desiredrate of production.

Due to the value of such immediate feedback, particularly for relativelyunskilled users or program editors, in some embodiments it is desirablefor editing operations to be immediately incorporated (e.g.,automatically or with very minimal effort by the user) into the currentversion of the inspection plan and/or inspection program, which is thenreflected in the various portions of the programming portion 202 and itsuser interface(s). In the illustrated embodiment, this may beaccomplished through the operations of the programming environmentsynchronization/notices manager 260, which in one embodiment may beimplemented using known “publisher-subscriber” methods, which aresometimes implemented using XML-like languages (e.g., as used fornotifications between web pages). In various embodiments, apublisher-subscriber method may be implemented by adapting methods suchas a list-based method, or a broadcast-based method, or a content-basedmethod to support the features disclosed herein. In a CMM programmingenvironment, the publishers and subscribers are generally located in thesame processing space, and it is possible for the identity of the“subscriber” windows to be known by the “publisher” (e.g., as may berecorded or implemented using the programming environmentsynchronization/notices manager 260, for example.) Applicable to suchcases, U.S. Pat. No. 8,028,085, which is hereby incorporated herein byreference in its entirety, describes low latency methods which may beadapted to support the features disclosed herein.

In one embodiment, determining and/or generating various workpiecefeatures and measurement operations in the CAD file processing portion205 and the inspection path/sequence manager 206 may include generatingand/or sharing a unique identifier for each workpiece feature andmeasurement operation. When the results from those portions are used inother portions of the programming portion 202 (e.g., as outlined above),the various identifiers may also be used or cross-referenced in theother portions to establish relevant associations between correspondingworkpiece features and/or inspection operations across the variousprocessing and/or user interface portions.

The user interface of the programming portion 202 includes a first setof operations (which also include the underlying programminginstructions and/or routines) usable to edit the workpiece featureinspection plan and/or inspection program. For example, the userinterface operations may include selections of text or graphicalelements that represent workpiece features or inspection operations,followed by activation of relevant commands or other user interfaceoperations that affect the selected elements. In one embodiment, thefirst set of operations portion 240 may provide or identify suchoperations. In one embodiment, the inspection plan modification noticesportion 249 may be responsive to operations included in the first set ofoperations portion 240 to provide a notice to the programmingenvironment synchronization/notices manager 260 that an inspection planmodification is taking place.

In response, the programming environment synchronization/notices manager260 may then (e.g., automatically) manage the exchange of various eventor programming operation notifications and related unique identifiers,such that the CAD file processing portion 205 and/or the inspectionpath/sequence manager 206 appropriately edit or modify the currentinspection plan and inspection program in a synchronized manner when oneof the first set of operations is performed. Such plan and programmodifications may be performed very quickly in various embodiments,because the unique identifiers described above may be used toefficiently focus the modifications on only those features and/ormeasurement operations affected by the currently active one of the firstset of operations. After that, the programming environmentsynchronization/notices manager 260 may notify other portions of theprogramming portion 202 (e.g., as outlined above), so that they areimmediately updated using information from the edited plan and/orprogram. The unique identifier(s) of the most recently edited elementsmay again be used to speed up such operations, in that the updating needonly focus on those elements associated with the identifiers.

It should be appreciated that the programming environmentsynchronization/notices manager 260 may also manage inter-portioncommunications and exchanges besides those associated with the first setof operations (e.g., using various techniques and identifiers similar tothose outlined above.) In various embodiments, it may facilitate thesynchronization between the various user interface windows or portionsof the programming portion 202. For example, selection of a particularfeature or instruction in one window may automatically trigger anotification or instruction to other windows to display a correspondingfeature or instruction in that other window, or depict a programoperating state associated with the selected feature or instruction, orthe like.

It will be appreciated that the embodiment(s) outlined above forachieving real-time editing operation synchronization between variousportions of the programming portion 202 is exemplary only, and notlimiting. For example, the function of the identifiers outlined abovemay be provided by suitable database or lookup table associations or thelike, without the presence of an explicit “identifier”. These and otheralternatives will be apparent to one of ordinary skill in the art basedon the teachings disclosed herein.

The execution time portion 270 may include an execution time indicatorportion 272 and an execution time calculating portion 274. In order toprovide valuable feedback to a user performing editing operations, theexecution time indicator portion 272 may provide a “real-time”indication of an estimated inspection program execution time foroperating the CMM to execute a workpiece inspection programcorresponding to the current workpiece feature inspection plan asexecuted by a current CMM configuration. Using the techniques outlinedabove, the programming portion 202 may be configured such that theexecution time indicator portion 272 is automatically updated inresponse to a utilization of one of the operations included in the firstset of operations portion 240 to modify the current workpiece featureinspection plan, so as to automatically indicate the estimated effect ofthe modification on the inspection program execution time. In variousimplementations, the first set of editing operations portion 240 mayinclude or identify operations corresponding to inclusion of a workpiecefeature 241A, exclusion of a workpiece feature 241B, a delete command242, an undo command 243, sequence editing 244 and altering a CMMconfiguration 245, each of which will be described in more detail belowwith respect to FIGS. 3-10. The first set of editing operations portion240 may further include or identify operations corresponding to addingor deleting individual measurement points (e.g., touch points for astylus) on a feature, or changing the motion plan for traversing betweenindividual measurement points, or the like. Another operations portion250 may include other operations relevant to the use and functioning ofthe programming portion 202 and/or general computing system 105. The 3-Dview portion 220 may display a 3-D view including workpiece features onthe workpiece and an indication of inspection operations to be performedon the workpiece features according to the current workpiece featureinspection plan. The simulation status and control portion 280 mayinclude a simulation status portion 281 that is configured tocharacterize a state of progress through the current workpiece featureinspection plan corresponding to a currently displayed 3-D view, and theexecution time indicator portion 272 may be displayed in conjunctionwith the simulation status portion 281.

In various implementations, as will be illustrated and described in moredetail below with respect to FIGS. 3-10, the simulation status portion281 may include a current time indicator 282 that moves along agraphical total time range element 283 to characterize a state ofprogress through the current workpiece feature inspection plancorresponding to the currently displayed 3-D view, and the executiontime indicator 272 may be displayed in association with the graphicaltotal time range element 283. In one implementation, the simulationstatus portion 281 further includes a current time display 284 whichincludes a numerical time representation that is automatically updatedcorresponding to the current time indicator 282 or the currentlydisplayed 3-D view, and that further characterizes the state of progressthrough the current workpiece feature inspection plan corresponding tothe currently displayed 3-D view. In one implementation, the simulationstatus and control portion 280 further includes a simulation animationcontrol portion 290 which includes elements that are usable to controlat least one of a start 291, pause 292, stop 293, reset 294, reverse295, loop 296, increase in speed 297 or decrease in speed 298 of ananimated display of simulated progress through the current workpiecefeature inspection plan as displayed in the 3-D view.

In various implementations, the computing system 105 and/or otherassociated computer system(s) may include suitable unitary ordistributed computing systems or devices, which may include one or moreprocessors that execute software to perform the functions describedherein. Processors include programmable general-purpose orspecial-purpose microprocessors, programmable controllers,application-specific integrated circuits (ASICs), programmable logicdevices (PLDs), or the like, or a combination of such devices. Softwaremay be stored in memory, such as random access memory (RAM), read-onlymemory (ROM), flash memory, or the like, or a combination of suchcomponents. Software may also be stored in one or more storage devices,such as disk drives, solid-state memories, or any other medium forstoring data. Software may include one or more program modules whichinclude routines, programs, objects, components, data structures, and soon that perform particular tasks or implement particular abstract datatypes. In distributed computing environments, the functionality of theprogram modules may be combined or distributed across multiple computingsystems or devices and in various implementations may be accessed viaservice calls.

FIG. 3 is a diagram of a user interface 305 (e.g., as may be shown onthe display unit 5D of FIG. 1, the display portion 175 of FIG. 2A, etc.)It will be appreciated that certain numbered elements 3XX of the userinterface 305 may correspond to and/or be provided by similarly numberedelements 2XX of FIGS. 2A and 2B, except as otherwise described below. Inthe implementation shown in FIG. 3, the user interface 305 includes aplan view window 310, a 3-D view window 320 and a program view window330. The plan view window 310 includes an editing user interface portion312, the 3-D view window 320 includes a workpiece inspection programsimulation portion 322, and the program view window 330 includes anediting user interface portion 332 and a simulation status and controlportion 380. The editing user interface portions 312 and 332 eachinclude plan representations 314 and 334, respectively, of a workpiecefeature inspection plan for a workpiece 10 corresponding to a CAD file.The plan representation 314 is organized in terms of geometric featuresto be inspected on the workpiece. The plan representation 334 isorganized as inspection program pseudo-code or actual code or graphicalprogram operation representations or the like, in various embodiments.In the illustrated embodiment, each or both of the plan representations314 and 334 are editable (that is, they are editable planrepresentations.) When editing operations are performed for one of theeditable plan representations 314 and 334, the other plan representationmay be automatically updated in a manner consistent with those editingoperations by operation of the various system elements illustrated anddescribed with respect to FIGS. 2A and 2B. However, in some embodiments,only one of the plan representations 314 and 334 need be editable. Insuch a case, the other plan representation may be absent, or hidden, ormay be displayed and automatically updated in a manner similar to thatoutlined above.

As described above with respect to FIGS. 2A and 2B, in variousimplementations, a computer-aided design (CAD) file processing portionmay input a workpiece CAD file corresponding to a workpiece 10 and mayanalyze the file to automatically determine inspectable workpiecefeatures on the workpiece 10 corresponding to a plurality of geometricfeature types (e.g., cylinder, plane, sphere, cone, etc.). In FIG. 3 theediting user interface portions 312 and 332 include editable planrepresentations 314 and 334 of the workpiece feature inspection plan forthe workpiece 10 corresponding to the CAD file, wherein the editableplan representations 314 and 334 include the editable set of workpiecefeatures 316 and 336 to be inspected. As will be described in moredetail below, an execution time indicator 372 is provided that isindicative of an estimated inspection program execution time foroperating the CMM to execute a workpiece inspection programcorresponding to the current workpiece feature inspection plan asexecuted by a current CMM configuration. A first set of operations isusable to edit the workpiece feature inspection plan, and the system isconfigured such that the execution time indicator 372 is automaticallyupdated in response to a utilization of one of the first set ofoperations to modify the current workpiece feature inspection plan, soas to automatically indicate the estimated effect of the modification onthe inspection program execution time.

The 3-D view portion 320 displays a 3-D view of the workpiece inspectionprogram simulation portion 322 including workpiece features 326 on theworkpiece 10′ and an indication of inspection operations to be performedon the workpiece features 326 according to the current workpiece featureinspection plan. In the example of FIG. 3, the 3-D view shows a touchprobe 21′ having a stylus 21T′, which is positioned relative to aworkpiece 10′. In the state illustrated, the touch probe stylus 21T′ iscontacting a cylinder workpiece feature 326F8, which corresponds to theworkpiece features 316F8 and 336F8 which are highlighted in the editableplan representations 314 and 334, respectively. In the editable planrepresentation 334 the workpiece feature 336F8 includes a description of“cylinder-1214” along with a displayed cylinder icon, and in theeditable plan representation 314 the workpiece feature 316F8 includes adescription of “1214” along with a displayed cylinder icon. Suchdescriptions and icons may be automatically generated and displayed ascorresponding to a numbered designation and geometric type (e.g.,cylinder, plane, sphere, cone, etc.) for each of the workpiece features.

The simulation status and control portion 380 may include a simulationstatus portion 381 and a simulation animation control portion 390. Usingsynchronization techniques outlined above, for example, the simulationstatus portion 381 may be configured to characterize a state of progressthrough the current workpiece feature inspection plan corresponding to acurrently displayed 3-D view of the workpiece inspection programsimulation portion 322. In various implementations, the simulationstatus portion 381 may include a current time indicator 382 that movesalong a graphical total time range element 383 to characterize a stateof progress through the current workpiece feature inspection plancorresponding to the currently displayed 3-D view, and the executiontime indicator 372 may be displayed in association with the graphicaltotal time range element 383. In one implementation, as illustrated inthe example of FIG. 3, the execution time indicator 372 may be displayedin the vicinity of the right-hand end of the graphical total time rangeelement 383.

In one implementation, the simulation status portion 381 may furtherinclude a current time display 384 displayed in the vicinity of at leastone of the current time indicator 382 or the total time range element383, and the current time display 384 may include a numerical timerepresentation that is automatically updated corresponding to thecurrent time indicator 382 or the currently displayed 3-D view, and thatfurther characterizes the state of progress through the currentworkpiece feature inspection plan corresponding to the currentlydisplayed 3-D view. In the example of FIG. 3, the current time display384 indicates a time of “0:02:02” out of a total time indicated by theexecution time indicator 372 of “0:18:06”, and the current timeindicator 382 is shown at a proportional position along the total timerange element 383. This position of the current time indicator 382 andthe time of the current time display 384 correspond to the current stateof progress through the current workpiece feature inspection plan,which, relative to the editable plan representation 314, indicates thatthe workpiece feature 316F8 is being inspected after having completedthe corresponding inspections of workpiece features 316F1-316F7.Correspondingly, relative to the editable plan representation 334 thisindicates that the workpiece feature 336F8 is being inspected afterhaving completed the corresponding inspections of workpiece features336F1-336F7. In one implementation, the simulation animation controlportion 390 may include elements that are usable to control an animateddisplay of simulated progress through the current workpiece featureinspection plan as displayed in the 3-D view. For example, a startelement 391, stop element 393, reverse element 395 and loop element 396are illustrated in the simulation animation control portion 390,although it will be appreciated that in other implementations otherelements (e.g., corresponding to pause, reset, increase speed, decreasespeed, etc.) may also be included.

As will be described in more detail below, the editable planrepresentation 314 that is illustrated in FIGS. 3-10 includes forty-sixworkpiece features 316F1-316F46 on the workpiece 10′ that may beinspected. The workpiece features 316F1-316F46 correspond to workpiecefeatures 326F1-326F46 on the workpiece 10′ in the workpiece inspectionprogram simulation portion 322, and to workpiece features 336F1-336F46in the editable plan representation 334. In order to simplify thefigures, only some of the workpiece features are labeled. In the exampleof FIG. 3, the workpiece features 316F1-316F21 are currently visible inthe plan view window 310, wherein a user may utilize controls toincrement or scroll down (e.g., utilizing a vertical scroll bar 317,etc.) to view additional workpiece features (e.g., as will beillustrated and described in more detail below with respect to FIGS. 6and 9). Similarly, a vertical scroll bar 337 may be used to scroll upand down the program view window 330.

With respect to the first set of operations that is usable to edit theworkpiece feature inspection plan, in one implementation the editinguser interface portion 312 may include workpiece featureexclusion/inclusion elements 318 (e.g., checkboxes next to each of theworkpiece features 316) that operate to toggle between an exclusionstate (e.g., with the associated box unchecked) and an inclusion state(e.g., with the associated box checked) for each associated workpiecefeature 316. An exclusion state may correspond to an exclusion of theassociated workpiece feature 316 from the set of workpiece features tobe inspected, and an inclusion state may correspond to an inclusion ofthe associated workpiece feature 316 in the set of workpiece features tobe inspected. In the example of FIG. 3, all of the workpiece features316 have been selected for inclusion. In various implementations, thefirst set of operations may include a utilization of the workpiecefeature exclusion/inclusion elements 318 to either exclude or includeworkpiece features 316 with respect to the set of workpiece features tobe inspected, and the execution time indicator 372 may automatically beupdated in response to a utilization of a workpiece featureexclusion/inclusion element 318, as will be described in more detailbelow with respect to FIGS. 4 and 5.

FIG. 4 is a diagram of the user interface 305 of FIG. 3 in which some ofthe workpiece features 316 have been unselected so as to be excludedfrom the set of workpiece features to be inspected. More specifically,as illustrated in FIG. 4, for the workpiece features 316F8-316F18, thecorresponding workpiece feature exclusion/inclusion elements 318 haveall been unchecked. As a result, the workpiece features 316F8-316F18 areno longer included in the set of workpiece features to be inspected.This is illustrated in the editable plan representation 334, for whichthe workpiece feature 336F7 is shown to be followed by the workpiecefeature 336F19, with the workpiece features 336F8-336F18 no longer beingincluded. This may be contrasted with the state of the editable planrepresentation 334 illustrated in FIG. 3, for which the workpiecefeature 336F7 is shown to be followed by the workpiece feature 336F8,etc.

As a result of the unselecting of the workpiece features 316F8-316F18,in real time the exclusion time indicator 372 indicates a reduced timeof “0:13:52”, as compared to the previously indicated time of “0:18:06”of FIG. 3. This reduction in the displayed execution time indicates theestimated effect of the editing modification on the inspection programexecution time. In this manner, real-time feedback related to thethroughput effects of editing operations is provided in the editingenvironment such that a user may be made aware of the estimated effectof such modifications on the workpiece feature inspection plan. This maybe useful for the user when determining tradeoffs between thethoroughness of inspection operations in comparison to the resultingthroughput on an inspection machine, especially when inspections areautomatically programmed based on the selected set of workpiecefeatures. Such automatic programming operations may produce unexpectedreductions or increases in inspection time (e.g., due to required probeor stylus change operations associated with a feature), and timelyindication of such throughput effects may make inspection plan editingmuch more effective and efficient—particularly when it is displayed in aconvenient and intuitive manner in the user interface. In contrast toembodiments within the scope of this disclosure, previously known CMMprogramming environments have not operated to determine the executiontime effects of editing operations in a timely or real-time manner, orindicate those execution time effects in a user friendly and convenientmanner in the user interface.

With respect to the 3-D view window 320, in various implementations, thehighlighting of the workpiece features 316F8-316F18 in the editable planrepresentation 314 may correspondingly result in the workpiece features326F8-326F18 also being highlighted or otherwise marked. In order tosimplify the illustrations in FIG. 3, only the workpiece features 326F8and 326F18 are labeled in the 3-D view window 320.

FIG. 5 is a diagram of the user interface 305 in which some of theexcluded workpiece features 316 of FIG. 4 have been reselected so as tobe reincluded in the set of workpiece features to be inspected. Morespecifically, as shown in FIG. 5, the workpiece features 316F12-316F14are shown as having their corresponding workpiece featureexclusion/inclusion elements 318 rechecked so as to be reselected forinclusion in the set of workpiece features to be inspected. As a result,as illustrated in the editable plan representation 334, the workpiecefeature 336F7 is now followed by the workpiece features 336F12-336F14,which are subsequently followed by the workpiece feature 336F19, etc. Asa result of this modification, the execution time indicator 372 is shownto indicate a time of “0:14:34”, which is an increase from the indicatedtime of “0:13:52” of FIG. 4, as corresponding to the additional timerequired for inspecting the workpiece features 336F12-336F14 asreincluded in the set of workpiece features to be inspected.

As also illustrated in FIG. 5, a cylinder workpiece feature ishighlighted, as corresponding to the workpiece feature 316F6 of theeditable plan representation 314, the workpiece feature 326F6 of the 3-Dview window 320 and the workpiece feature 336F6 of the editable planrepresentation 334. The current time display 384 is shown tocorrespondingly indicate a time of “0:01:01” out of a total timeindicated by the execution time indicator 372 of “0:14:34”, and thecurrent time indicator 382 is shown to be at a proportional positionalong the graphical total time range element 383. This indicates thatthe inspection of the workpiece feature 326F6 occurs approximately atthe time “0:01:01” after the inspection of the workpiece features326F1-326F5 has been completed.

In various implementations, as an alternative or in addition to theworkpiece feature exclusion/inclusion elements 318 described above withrespect to FIGS. 3-5, additional elements and/or commands may beprovided. For example, the editing user interface portion 312 or 332 mayinclude a delete command usable to delete a currently selected workpiecefeature 316 or 336 from the set of workpiece features to be inspected.In such an implementation, the first set of operations may include autilization of the delete command, and the execution time indicator 372may automatically be updated in response to a utilization of the deletecommand. As another example, the editing user interface portion 312 or332 may include an undo command usable to undo a previously executedoperation. In such an implementation, the first set of operations mayinclude a utilization of the undo command to undo a previously executedoperation included in the first set of operations, and the executiontime indicator 372 may automatically be updated in response to autilization of the undo command.

FIG. 6 is a diagram of the user interface 305 displaying the end of theworkpiece feature inspection plan. As shown in FIG. 6, the editable planrepresentation 334 shows a program element 338 (i.e., with a descriptionof “move absolute”) as being highlighted, which corresponds to the endof the workpiece feature inspection plan. The current time display 384correspondingly indicates a time of “0:14:34” out of a total timeindicated by the execution time indicator 372 of “0:14:34”. The currenttime indicator 382 is correspondingly shown to be at the end of thegraphical total time range element 383. In the 3-D view window 320, theprobe 21 is shown as backed away from the workpiece 10′, as may occur atthe end of the workpiece feature inspection plan.

FIG. 7 is a diagram of the user interface 305 in which additional detailis displayed regarding the editable plan representations 314 and 334 andan example cylindrical workpiece feature is highlighted. As shown inFIG. 7, the additional detail for the editable plan representations 314and 334 includes information about specific measurement points,movements, angles, etc., for the performance of the inspections of thedesignated workpiece features. For example, in the editable planrepresentation 334, a set of twenty-one measurement points 336F6MP isillustrated with respect to the inspection of the workpiece feature336F6.

The highlighted cylindrical workpiece feature is shown to correspond tothe workpiece feature 316F7 in the editable plan representation 314, theworkpiece feature 326F7 in the 3-D view window 320, and the workpiecefeature 336F7 in the editable plan representation 334. In variousimplementations, the corresponding measurement points or otherinspection elements for a highlighted workpiece feature may beillustrated relative to the workpiece feature 326 in the 3-D view window320. Corresponding to the highlighted workpiece feature 336F7, thecurrent time display 384 is shown to indicate a time of “0:01:32” out ofa total time indicated by the execution time indicator 372 of “0:14:34”,and the current time indicator 382 is shown to be at a proportionalposition across the graphical total time range element 383. Thisindicates that the inspection of the workpiece feature 336F7 occursapproximately at the time “0:01:32”, after the inspection of theworkpiece features 336F1-336F6 has been completed.

FIG. 8 is a diagram of the user interface 305 in which an example planeworkpiece feature has been highlighted. As shown in FIG. 8, the planeworkpiece feature corresponds to the workpiece feature 316F27 in theeditable plan representation 314, the workpiece feature 326F27 in the3-D view window 320, and the workpiece feature 336F27 in the editableplan representation 334. In the 3-D view window 320, the probe 21′ andstylus 21T′ are illustrated as positioned for beginning the inspectionof the plane workpiece feature 326F27. The current time display 384 isshown to correspondingly indicate a time of “0:05:24” out of a totaltime indicated by the execution time indicator 372 of “0:14:34”, and thecurrent time indicator 382 is shown at a proportional position along thegraphical total time range element 383. This indicates that theinspection of the workpiece feature 336F27 occurs approximately at thetime “0:05:24”, after the inspection of the previous workpiece featureshas been completed.

FIGS. 9 and 10 are diagrams of the user interface 305 illustrating astate of the editable plan representations 314 and 334 before and afterone or more sequence editing operations have been performed,respectively. As shown in FIG. 9, the workpiece features included in theeditable plan representations 314 and 334 are shown in a different orderthan has previously been illustrated and described with respect to FIGS.3-8. The state of FIG. 9 generally corresponds to a time before one ormore sequence editing operations have been performed to improve theefficiency for operating the CMM to execute the workpiece inspectionprogram corresponding to the current workpiece feature inspection plan.The different order of the workpiece features in the editable planrepresentation 314 is illustrated in part by the workpiece feature 316F6being followed by the workpiece feature 316F9, which is followed by theworkpiece feature 316F38, which is followed by a final group ofworkpiece features 316F42-316F46 that are measured at the end of theworkpiece inspection program. Correspondingly, in the editable planrepresentation 334, the workpiece feature 336F6 is followed by theworkpiece feature 336F9, which is followed by the workpiece feature336F38, which is followed by the final group of workpiece features336F42-336F46. For the illustrated state of the editable planrepresentations 314 and 334, the execution time indicator 372 is shownto indicate a total execution time of “0:23:36”.

In contrast, as shown in FIG. 10, after the one or more sequence editingoperations have been performed, the execution time indicator 372 isshown to indicate a reduced total execution time of “0:18:06”. Thiscorresponds to the inspection of the workpiece features being placed ina more efficient order, and may also correspond to a change in the CMMconfiguration, as will be described in more detail below. As shown inFIG. 10, the editable plan representation 314 and the editable planrepresentation 334 include the workpiece features that are to beinspected in the same order in which they were previously illustratedand described with respect to FIGS. 3-8. This order is correspondinglymore efficient than the order illustrated in FIG. 9. A tracking area 339at the bottom of the program view window 330 may also include data suchas a number of probe changes as corresponding to the execution of theworkpiece inspection program as executed by a current CMM configuration.In one implementation, the number of probe changes illustrated in thestate of FIG. 9 is shown to be “26” while the number of probe changes inthe state of FIG. 10 is reduced to “11”, which may further contribute tothe reduction in the total execution time as indicated by the executiontime indicator 372.

In one implementation, the editing user interface portion 312 or 332 mayinclude workpiece feature sequence editing features usable to alter aninspection sequence of the set of workpiece features to be inspected, asdescribed above with respect to FIGS. 9 and 10. In such animplementation, the first set of operations may include a utilization ofa workpiece feature sequence editing feature to alter the inspectionsequence, and the execution time indicator 372 may automatically beupdated in response to a utilization of the workpiece feature sequenceediting feature. Different types of workpiece feature sequence editingfeatures may be provided. For example, one type may include dragging aworkpiece feature 316 or 336 to a new position in a displayed sequenceof the editable set of workpiece features to be inspected. Another typemay include cutting and pasting a workpiece feature 316 or 336 to a newposition in a displayed sequence of the editable set of workpiecefeatures to be inspected. Another type may include utilizing anexecution time reducing command that automatically re-sequences theinspection sequence of the set of workpiece features to be inspected soas to reduce the execution time.

In one implementation, the user interface may include a CMM definitionportion usable to define or revise the current CMM configuration. Insuch an implementation, the first set of operations may include autilization of the CMM definition portion to revise the current CMMconfiguration, and the execution time indicator may automatically beupdated in response to a utilization of the CMM definition portion torevise the current CMM configuration. The revised current CMMconfiguration may include at least one of: a revised configuration of atleast one sensor; a revised model or type of CMM machine; or a revisedmotion control parameter used by the CMM control portion.

FIG. 11 is a flow diagram illustrating one exemplary implementation of aroutine 1100 for operating a user interface with real-time feedbackrelated to throughput. At a block 1110, a system is provided forprogramming workpiece feature inspection operations for a CMM, thesystem including: a computer-aided design (CAD) file processing portionwhich inputs a workpiece CAD file corresponding to a workpiece andanalyzes the file to automatically determine inspectable workpiecefeatures on the workpiece corresponding to a plurality of geometricfeature types; and a user interface including an editing user interfaceportion comprising an editable plan representation of a workpiecefeature inspection plan for the workpiece corresponding to the CAD file,wherein the editable plan representation includes an editable set ofworkpiece features to be inspected and a first set of operations isusable to edit the workpiece feature inspection plan.

At a block 1120, an execution time indicator is provided in the userinterface that is indicative of an estimated inspection programexecution time for operating the CMM to execute a workpiece inspectionprogram corresponding to the current workpiece feature inspection planas executed by a current CMM configuration. At a block 1130, theexecution time indicator is updated in response to a utilization of oneof the first set of operations to modify the current workpiece featureinspection plan, so as to automatically indicate the estimated effect ofthe modification on the inspection program execution time.

FIG. 12 is a flow diagram illustrating one exemplary implementation of aroutine 1200 for operating a user interface with a simulation status andcontrol portion that is responsive to selection operations. At a block1210, a computer-aided design (CAD) file processing portion is providedwhich inputs a workpiece CAD file corresponding to a workpiece andanalyzes the file to automatically determine inspectable workpiecefeatures on the workpiece corresponding to a plurality of geometricfeature types. At a block 1220, a user interface is provided including aworkpiece inspection program simulation portion and a simulation statusand control portion. The workpiece inspection program simulation portionis configurable to display a 3-D view including at least one ofworkpiece features on the workpiece or inspection operationrepresentations corresponding to inspection operations to be performedon workpiece features according to a current workpiece featureinspection plan. The simulation status and control portion includes asimulation status portion configured to characterize a state of progressthrough the current workpiece feature inspection plan corresponding to acurrently displayed 3-D view. In addition, the simulation status andcontrol portion is configured to respond to selection operationsincluded in a first set of selection operations performed in the userinterface outside of the simulation status and control portion.

At a block 1230, a selection is received of at least one workpiecefeature or inspection operation representation in the user interface aspart of a selection operation that is included in the first set ofselection operations. At a block 1240, a simulation status and controlportion response is provided to the received selection. In variousimplementations, the simulation status and control portion responseincludes altering the simulation status portion to characterize a stateof progress through the current workpiece feature inspection plancorresponding to the portion of the current workpiece feature inspectionplan directed to the selected at least one workpiece feature orinspection operation representation. For example, as described abovewith respect to FIGS. 3-10, a simulation status portion 381 may includea current time indicator 382 that moves along a graphical total timerange element 383 to characterize a state of progress through a currentworkpiece feature inspection plan corresponding to a currently displayed3-D view (e.g., in a 3-D view window 320), and the altering of thesimulation status portion 381 to characterize a state of progress mayinclude altering the position of the current time indicator 382 alongthe graphical total time range element 383. As will be described in moredetail below with respect to FIG. 14, the position of the current timeindicator 382 along the graphical total time range element 383 may alsobe directly adjustable by a user, and when the position of the currenttime indicator 382 is adjusted, the currently displayed 3-D view (e.g.,in the 3-D view window 320) may be altered to correspond to the state ofprogress through the current workpiece feature inspection plan that isindicated by the position of the current time indicator 382. As alsodescribed above, the simulation status portion 381 may further include acurrent time display 384 that may consist of a numerical timerepresentation that characterizes the state of progress through thecurrent workpiece feature inspection plan corresponding to the currentlydisplayed 3-D view, for which the altering of the simulation statusportion to characterize a state of progress may also or alternativelyinclude altering the numerical time representation.

FIG. 13 is a flow diagram illustrating one exemplary implementation of aroutine 1300 for selection operations performed in a 3-D view. At adecision block 1310, a determination is made as to whether a workpiecefeature or inspection operation representation has been selected in the3-D view that is included in a current workpiece feature inspectionplan. In various implementations, the selection operation may include apositioning of a selector element (e.g., a mouse cursor) proximate to aworkpiece feature or inspection operation representation in the 3-Dview, and a performance of a selection action for selecting theworkpiece feature or inspection operation representation. For example,with respect to the 3-D window 320 of FIGS. 3-10 that may be provided ona display (e.g., the display unit 5D of FIG. 1), a user may utilize amouse or other input device to position a selector element (e.g., amovable pointer, cursor, highlighted area, finger on a touch screen,etc.) over a workpiece feature or inspection operation, and may selectthe workpiece feature or inspection operation representation through aperformance of a selection action (e.g., pressing a key, button, mouse,pushing a finger on a touch screen, etc.). As another example, in aholographic three-dimensional view, the selector element may include anelement such as a pointer or the user's finger, and the selector elementmay be used to perform a selection action (e.g., the user making aparticular type of motion with the selector element for making aselection).

If a selected workpiece feature or inspection operation representationis included in the current workpiece feature inspection plan, then at ablock 1320 the currently displayed 3-D view is altered to indicate theselected workpiece feature or inspection operation representation (e.g.,by highlighting a workpiece feature operation representation with adifferent color or pattern, and/or “touching” it with a displayed touchprobe, or the like) and the position of a current time indicator isaltered to a corresponding position along a graphical total time rangeelement and a time shown in a current time display is altered to acorresponding time. Various examples of selection operations may bedescribed with respect to FIGS. 3-10. As a first specific exampleutilizing FIGS. 3 and 10, as shown in FIG. 10 a sequence editingoperation has recently been performed and no workpiece feature orinspection operation representation has yet been selected. The state ofFIG. 3 may then be reached by a user making a selection of the cylinderworkpiece feature 326F8 in the 3-D view window 320. As shown in FIG. 3,the currently displayed 3-D view (i.e., in the 3-D view window 320) hasbeen altered to indicate the selected workpiece feature or inspectionoperation representation and/or show the corresponding status orprogress of simulated inspection operations corresponding to the portionof the current workpiece feature inspection plan that is directed to theselected workpiece feature 326F8. More specifically, in this example,the touch probe stylus 21T′ is illustrated as having been moved to aposition where it is contacting the workpiece feature 326F8, whereinspection operations (e.g., for determining measurement points) may beperformed on the workpiece feature 326F8. Correspondingly, the currenttime display 384 has been altered to show a time of “0:02:02” thatcorresponds to the time during the current workpiece feature inspectionplan when the inspection of the cylinder workpiece feature 326F8 will beperformed, and which is out of a total time indicated by the executiontime indicator 372 of “0:18:06”, and the current time indicator 382 isshown to have been moved to a proportional position along the graphicaltotal time range element 383. In this manner, the position of thecurrent time indicator 382 along the graphical total time range element383, and the time shown in the current time display 384, have each beenaltered so as to characterize a state of progress through the currentworkpiece feature inspection plan that corresponds to the portion of thecurrent workpiece feature inspection plan directed to the workpiecefeature 326F8 that has been selected by a user in the 3-D view window320.

As a second specific example utilizing FIGS. 5, 7 and 8, in FIG. 5, auser has made a selection of the workpiece feature 326F6 in the 3-D viewwindow 320. The current time display 384 shows a time of “0:01:01”(i.e., corresponding to a time during the current workpiece featureinspection plan when the workpiece feature 326F6 is being inspected)which is out of a total time indicated by the execution time indicator372 of “0:14:34”, and the current time indicator 382 is shown at aproportional position along the graphical total time range element 383.A user may subsequently make a selection in the 3-D view window 320 of anext workpiece feature 326F7, so as to reach the state illustrated inFIG. 7. As shown in FIG. 7, the 3-D view window 320 has been altered toindicate the selected workpiece feature or inspection operationrepresentation and/or show the corresponding status or progress ofsimulated inspection operations corresponding to the portion of thecurrent workpiece feature inspection plan that is directed to theworkpiece feature 326F7 (i.e., the touch probe stylus 21T′ isillustrated as positioned for the beginning of the inspection of thecylinder workpiece feature 326F7). The current time display 384 is shownto have been altered to indicate a time of “0:01:32” (i.e.,corresponding to the time during the current workpiece featureinspection plan when the workpiece feature 326F7 is being inspected),which is out of a total time indicated by the execution time indicator372 of “0:14:34”, and the position of the current time indicator 382 isshown to have been altered to be at a proportional position along thegraphical total time range element 383.

Similarly, from the state of FIG. 7, a user may make a subsequentselection of another workpiece feature 326F27 in the 3-D view window320, so as to reach the state of FIG. 8. As shown in FIG. 8, the 3-Dview window 320 has been altered so as to indicate the selectedworkpiece feature or inspection operation representation and/or show thecorresponding status or progress of simulated inspection operationscorresponding to the portion of the current workpiece feature inspectionplan that is directed to the workpiece feature 326F27 (i.e., the touchprobe stylus 21T′ is illustrated as positioned for beginning theinspection of the plane workpiece feature 326F27). The current timedisplay 384 is shown to have been altered to indicate a time of“0:05:24” (i.e., corresponding to the time during the current workpiecefeature inspection plan when the workpiece feature 326F27 is beinginspected), which is out of a total time indicated by the execution timeindicator 372 of “0:14:34”, and the position of the current timeindicator 382 is shown to have been altered to be at a proportionalposition along the graphical total time range element 383.

In this second specific example, FIGS. 7 and 8 also illustrate certaintypes of inspection operation representations, wherein the inspectionoperation representations may be displayed and/or selected in additionor as an alternative to the workpiece features. More specifically, asshown in FIGS. 7 and 8, the editable plan representations 314 and 334include information about specific measurement points, movements,angles, etc. (e.g., which may be included as types of inspectionoperation representations), for the performance of the inspections ofthe designated workpiece features. For example, in the editable planrepresentation 334 of FIG. 7, a set of 21 measurement points 336F6MP(e.g., which collectively or individually may be inspection operationrepresentations) is illustrated with respect to the inspection of theworkpiece feature 336F6. In various implementations, such measurementpoints, movements, angles, etc., may be graphically illustrated in the3-D view window 320 as proximate to the related workpiece features(e.g., illustrated as widgets, dots, angle and/or movement symbols inthe 3-D representation, etc.), and in such a configuration may beselectable by a user in a manner similar to how the workpiece features326 are selectable.

Returning to FIG. 13, at a decision block 1330, a determination is madeas to whether a workpiece feature or inspection operation representationhas been selected in the 3-D view that is excluded from the currentworkpiece feature inspection plan. If a selected workpiece feature orinspection operation representation is excluded from the currentworkpiece feature inspection plan, then at a block 1340 anindication/notification is provided that the selected workpiece featureor inspection operation representation is excluded from currentworkpiece feature inspection plan and option(s) may be provided forincluding the selected workpiece feature or inspection operationrepresentation. An example of a selection of a workpiece feature that isexcluded from a current workpiece feature inspection plan may bedescribed with respect to FIG. 4. In FIG. 4, a number of workpiecefeatures (i.e., workpiece features 316F8-316F18) have been excluded fromthe current workpiece feature inspection plan. A user may subsequentlyselect one of the excluded workpiece features in the 3-D view window 320(e.g., the workpiece feature 326F8, the workpiece feature 326F18, etc.).In one specific example implementation, as a result of a selection of anexcluded workpiece feature, the current time display 384 may be made toindicate a time of “0:00:00”, and the current time indicator 382 maycorrespondingly be positioned at the beginning of the total time rangeelement 383, both of which may provide an indication that the selectedworkpiece feature is excluded from the current workpiece featureinspection plan. In addition, when a user selects an excluded workpiecefeature in the 3-D view window 320, the editable plan representation 314in the plan view window 310 may be made to show the selected workpiecefeature in a highlighted state, along with the workpiece featureexclusion/inclusion element 318 being unchecked, so as to indicate anoption for including the workpiece feature in the current workpiecefeature inspection plan (e.g., by selecting the corresponding workpiecefeature exclusion/inclusion element 318 so as to toggle to the inclusionstate for which the associated box will be checked).

Returning to FIG. 13, at a block 1350, the simulation or animationincluding the display of the progress of the workpiece featureinspection plan in the 3-D view is continued as controlled by asimulation animation control portion. Examples of controlling operationsof a simulation animation control portion are described in more detailbelow with respect to FIG. 15. It will be appreciated that if operationsof the block 1350 are reached based on completion of operations of theblock 1320, then the current status of the 3-D view and the status ofthe simulation status and control portion correspond to the recentlyselected element in the 3-D view, as indicated above in the descriptionof the block 1320. Therefore, in such a case, according to principlesdisclosed herein, activating a “play” or “go” element of the simulationanimation control portion (in the absence of any further statusadjustment) will activate the simulation animation to continue from itscurrent status (that is corresponding to feature or operation selectedat the block 1310). At a decision block 1360, a determination is made asto whether the simulation and/or any selections of workpiece features orinspection operation representations are complete (e.g., as indicated bythe simulation reaching its end, by a user selection for ending thesimulation and/or any further selections of workpiece feature orinspection operation representations, etc.). If the user is not donewith the simulation and/or any further selections of workpiece featuresor inspection operation representations, the routine returns to block1310, otherwise the routine ends.

FIG. 14 is a flow diagram illustrating one exemplary implementation of aroutine 1400 for adjusting a simulation status portion. As describedabove, in addition to the simulation status portion being utilized tocharacterize a state of progress through the current workpiece featureinspection plan, the simulation status portion may also be directlyadjustable by a user. As shown in FIG. 14, at a decision block 1410, adetermination is made as to whether the current time indicator is beingslid by a user along the graphical total time range element. If it isdetermined that the current time indicator is being slid by the user,then at a block 1420 a progression through the current workpiece featureinspection plan is displayed in the 3-D view at a speed that correspondsto the speed at which current time indicator is being slid.

At a decision block 1430, a determination is made as to whether aposition on the graphical total time range element has been selected bya user in order to make the current time indicator move to the selectedposition. If it is determined that a position on the graphical totaltime range element has been selected by a user, then at a block 1440 thecurrently displayed 3-D view is altered to display the portion of thecurrent workpiece feature inspection plan that corresponds to theselected position of current time indicator (e.g., display thecorresponding workpiece feature or inspection operation representationand/or corresponding status or progress of simulated inspectionoperations). At a block 1450, the simulation in the 3-D view iscontinued as controlled by the simulation animation control portion.Examples of controlling operations of a simulation animation controlportion are described in more detail below with respect to FIG. 15. Itwill be appreciated that operations of the block 1450 are reached basedon completion of operations of the block 1420 or 1440. Therefore, thecurrent status of the 3-D view and the simulation status and controlportion corresponds to those completed operations. In such a case,according to principles disclosed herein, activating a “play” or “go”element of the simulation animation control portion (in the absence ofany further status adjustment) will activate the simulation animation tocontinue from its current status as determined by those operations. At adecision block 1460, a determination is made as to whether thesimulation and/or any adjustments to the simulation status portion arecomplete (e.g., as indicated by the simulation reaching its end, by auser selection for ending the simulation and/or any further adjustmentsto the simulation status portion, etc.). If the user is not done withthe simulation and/or any adjustments to the simulation status portion,the routine returns to the block 1410, otherwise the routine ends.

FIG. 15 is a flow diagram illustrating one exemplary implementation of aroutine 1500 for utilizing a simulation animation control portion. Asdescribed above with respect to FIGS. 2B and 3-10, the simulation statusand control portion 280 or 380 may include a simulation animationcontrol portion 290 or 390, including at least one element that isusable to control at least one aspect of an animated display ofsimulated progress through the current workpiece feature inspection planas displayed in the 3-D view. As shown in FIG. 15, at a decision block1510, a determination is made as to whether a user has made a selectionof start/play. If it is determined that the user has made a selection ofstart/play, then at a block 1515 a forward progression through thecurrent workpiece feature inspection plan is displayed in the 3-D view(e.g., at a current selected speed). At a decision block 1520, adetermination is made as to whether a user has made a selection ofstop/pause. If it is determined that the user has made a selection ofstop/pause, then at a block 1525 the progression through the currentworkpiece feature inspection plan in the 3-D view is stopped/paused(e.g., with a current workpiece feature or inspection operationhighlighted or otherwise indicated).

At a decision block 1530, a determination is made as to whether a userhas made a selection of reverse. If it is determined that the user hasmade a selection of reverse, then at a block 1535 a reverse progressionthrough the current workpiece feature inspection plan is displayed inthe 3-D view (e.g., at current selected speed), showing a reverseperformance of the inspection operations. At a decision block 1540, adetermination is made as to whether a user has made a selection ofreset. If it is determined that the user has made a selection of reset,then at a block 1545 a reset is made to the beginning of the currentworkpiece feature inspection plan in the 3-D view (e.g., showing theprobe 21′ at a starting position which may be backed away from theworkpiece).

At a decision block 1550, a determination is made as to whether a userhas made a selection of a loop. If it is determined that the user hasmade a selection of a loop, then at a block 1555 a repeating progressionthrough the current workpiece feature inspection plan is displayed inthe 3-D view (e.g., which starts over again at the end of the workpiecefeature inspection plan). At a decision block 1560, a determination ismade as to whether a user has made a selection of increase speed. If itis determined that the user has made a selection of increase speed, thenat a block 1565 the progression through the current workpiece featureinspection plan is displayed in the 3-D view (e.g., either in forward orreverse) at an increased speed according to the selection.

At a decision block 1570, a determination is made as to whether a userhas made a selection of decrease speed. If it is determined that theuser has made a selection of decrease speed, then at a block 1575 theprogression through current workpiece feature inspection plan isdisplayed in the 3-D view (e.g., either in forward or reverse) at adecreased speed according to the selection. At a decision block 1580, adetermination is made as to whether a user is done with the simulation(e.g., as indicated by a user selection for ending the simulation). Ifit is determined that the user is not done, the routine returns to theblock 1510, otherwise the routine ends.

FIG. 16 is a flow diagram illustrating one exemplary implementation of aroutine 1600 for selection operations performed in an editable planrepresentation. Examples of editable plan representations 314 and 334are illustrated in FIGS. 3-10, as described above. As shown in FIG. 16,at a decision block 1610, a determination is made as to whether aworkpiece feature or inspection operation representation has beenselected by a user in an editable plan representation that is includedin a current workpiece feature inspection plan. If it is determined thata selected workpiece feature or inspection operation representation isincluded in a current workpiece feature inspection plan, then at a block1620 the position of a current time indicator is altered to acorresponding position along a graphical total time range element and atime shown in a current time display is altered to a corresponding time.The displayed editable plan representation may also be updated toindicate the selected workpiece feature or inspection operation (e.g.,it may be highlighted and/or may become the active target of subsequentcommands or operations.)

It will be appreciated that the examples described above with respect tothe operations at the block 1320 of FIG. 13 may similarly be utilized asexamples for the operations at the block 1620. More specifically, withrespect to a transition from the state of FIG. 10 to the state of FIG.3, rather than selecting the workpiece feature 326F8 in the 3-D viewwindow 320, a user may alternatively select the workpiece feature 316F8in the editable plan representation 314, or the workpiece feature 336F8in the editable plan representation 334, so as to result in theillustrated alterations to the position of the current time indicator382 along the graphical total time range element 383 and to the timeshown in the current time display 384 (i.e., to the time of “0:02:02”).Similarly, with respect to the sequence of selections illustrated byFIGS. 5, 7 and 8, for the transition from the state of FIG. 5 to thestate of FIG. 7, rather than selecting the workpiece feature 326F7 inthe 3-D view window 320, a user may alternatively select the workpiecefeature 316F7 in the editable plan representation 314, or the workpiecefeature 336F7 in the editable plan representation 334, so as to resultin the illustrated alterations to the position of the current timeindicator 382 along the graphical total time range element 383 and tothe time shown in the current time display 384 (i.e., to the time of“0:01:32”). Similarly, for the transition from the state of FIG. 7 tothe state of FIG. 8, rather than selecting the workpiece feature 326F27in the 3-D view window 320, a user may alternatively select theworkpiece feature 316F27 in the editable plan representation 314, or theworkpiece feature 336F27 in the editable plan representation 334, so asto result in the illustrated alterations to the position of the currenttime indicator 382 along the graphical total time range element 383 andto the time shown in the current time display 384 (i.e., to the time of“0:05:24”).

As an additional example that may be illustrated by FIG. 6, a user maymake a selection of a program element 338 (i.e., which in oneimplementation may be a type of inspection operation representation)which may correspond to the end of the workpiece feature inspectionplan. In such an instance, the corresponding position of the currenttime indicator 382 may be altered to be at the end of the graphicaltotal time range element 383, and the time shown in the current timedisplay 384 may be altered to be equal to the total time indicated bythe execution time indicator 372 of “0:14:34”.

Returning to FIG. 16, at a decision block 1630, a determination is madeas to whether a workpiece feature or inspection operation representationhas been selected in an editable plan representation that is excludedfrom a current workpiece feature inspection plan. If it is determinedthat a selected workpiece feature or inspection operation representationis excluded from the current workpiece feature inspection plan, then ata block 1640 an indication/notification is provided that the selectedworkpiece feature or inspection operation representation is excludedfrom the current workpiece feature inspection plan and option(s) may beprovided for including the workpiece feature. An example of a selectionof a workpiece feature that has been excluded from a current workpiecefeature inspection plan may be described with respect to FIG. 4. Morespecifically, as illustrated in FIG. 4, in the editable planrepresentation 314 of the plan view window 310, a user has currentlyselected workpiece features 316F8-316F18, for which each of the selectedworkpiece features is in an exclusion state (i.e., with the associatedbox unchecked for the workpiece feature exclusion/inclusion elements318). As described above, in one specific example implementation, thecurrent time indicator 382 may correspondingly be shown at the beginningof the total time range element 383, and the current time display 384may correspondingly indicate a time of “0:00:00”, both of which mayprovide an indication that the selected workpiece feature(s) areexcluded from the current workpiece feature inspection plan. Asdescribed above, the workpiece feature exclusion/inclusion elements 318provide option(s) for including the workpiece features in the workpiecefeature inspection plan (e.g., by selecting the associated boxes so asto toggle to the inclusion state where each of the workpiece featureswill be included and each of the associated boxes will be checked).

At a block 1650, the review and/or editing of the editable planrepresentation is continued (e.g., as controlled by a user). It will beappreciated that if operations of the block 1650 are reached based oncompletion of operations of the block 1620, then the current status ofthe editable plan representation (and the 3-D view) and the status ofthe simulation status and control portion may all correspond to therecently selected element in the editable plan representation, asindicated above in the description of the block 1620. Therefore, in sucha case, according to principles disclosed herein, activating a “play” or“go” element of the simulation animation control portion (in the absenceof any further status adjustment) will activate the simulation animationto continue from its current status (that is corresponding to a featureor operation selected at the block 1610). At a decision block 1660, adetermination is made as to whether the review and/or editing of thecurrent workpiece feature inspection plan is complete (e.g., asindicated by a user selection for ending the review and/or editing). Ifit is determined that the review and/or editing is not complete, thenthe routine returns to the block 1610, otherwise the routine ends.

It should be appreciate that the systems and methods disclosed hereinmay be implemented in a manner that provides a generally “modeless”editing environment. That is, a user need not enter a “simulation” mode,or an “animation” mode that is separate from an editing mode ofoperation of the editing environment. A seamlessly responsive editingenvironment may be provided wherein all the user interface portions or“windows” are maintained up to date and synchronized with the latestediting operations, regardless of the portion of the user interface thatis used to perform the editing operations. For example, as previouslyoutlined, in various implementations the user interface may include aworkpiece inspection program simulation portion configurable to displaya 3-D view including at least one of workpiece features on the workpieceand inspection operation representations corresponding to inspectionoperations to be performed on workpiece features according to a currentworkpiece feature inspection plan; and an editing user interface portioncomprising an editable plan representation of the current workpiecefeature inspection plan for the workpiece corresponding to the CAD file,the editable plan representation comprising at least one of workpiecefeatures or inspection operation representations. In variousembodiments, the system may configured with both of the 3D view and theeditable plan representation being automatically responsive to editingoperations included in a first set of editing operations, regardless ofwhether the editing operations included in the first set of editingoperations are performed in the 3D view or the editable planrepresentation of the user interface. For example, the first set ofediting operations may comprise deleting (or adding) at least oneworkpiece feature in the 3D view or the editable plan representation ofthe user interface. The 3D view and the editable plan representation areconfigured such that they are both automatically responsive to deleting(or adding) the at least one workpiece feature in the 3D view or theeditable plan representation the user interface, by automaticallydeleting (or adding) the at least one workpiece feature and associatedinspection operations in both the 3D view and the editable planrepresentation.

The system may include an inspection path/sequence manager. Theinspection path/sequence manager may be also be automatically responsiveto editing operations included in a first set of editing operations asdescribed in greater detail below, regardless of whether the editingoperations included in the first set of editing operations are performedin the 3D view or the editable plan representation of the userinterface.

The system user interface may also include a program view portion. Theprogram view portion may be also be automatically responsive to editingoperations included in a first set of editing operations, regardless ofwhether the editing operations included in the first set of editingoperations are performed in the 3D view or the editable planrepresentation of the user interface, or in the program view portionitself.

One embodiment of a “general synchronized” and/or “real time globallyupdated” editing environment is illustrated in FIGS. 17-20. It will beappreciated that certain numbered elements 3XX of the user interface 305may correspond to and/or be provided by similarly numbered elements ofprevious figures, except as otherwise described below.

FIG. 17 is a diagram of a user interface illustrating a state of theplan view window 310, the 3-D view window 320 and the program viewwindow 330 prior to selecting or indicating a target feature for anediting operation as described further below. The detailed inspectionplan is a different one than that illustrated in previous figures. The3-D view window 320 includes a displayed motion path representation 1725and displayed measurement points 1726, corresponding to those of thecurrent inspection plan represented in the various windows

FIG. 18 is a diagram of a user interface illustrating a state of theplan view window 310, the 3-D view window 320 and the program viewwindow 330 after selecting or indicating a target workpiece feature(labeled “708” in the plan view window 310 or program view window 330,and indicated by the highlighted plane in the 3-D view window 320) foran editing operation as disclosed herein. Such a selection or indicationmay be achieved by the user hover a mouse cursor or the like on thetarget workpiece feature in the plan view window 310 or the 3-D viewwindow 320, or clicking on the target feature, for example.

FIG. 19 is a diagram of a user interface illustrating a state of theplan view window 310, the 3-D view window 320 and the program viewwindow 330 after selecting or indicating the target workpiece featureshown and described in FIG. 18, after performing an operation thatenables performing a feature deleting editing operation. In particular,after the selection or indication performed as describe above withreference to FIG. 18, the user may right click on the targeted workpiecefeature to display a context sensitive menu 1725 (e.g. if right clickingon the feature labeled “708” in the plan view window 310), and/or todisplay a context sensitive menu 1725′ (e.g. if right clicking on thecorresponding highlighted plane in the 3-D view window 320. Then ineither the plan view window 310 or the 3-D view window 320, the user mayclick on the “delete feature” command to perform and editing operationthat deletes the target feature from the current inspection plan.

FIG. 20 is a diagram of a user interface illustrating a state of a stateof the plan view window 310, the 3-D view window 320 and the programview window 330 after performing the editing operation that deletes thetarget feature from the inspection plan as outlined above with referenceto FIG. 19. It should be noted that due to the use of the global realtime updating and user interface synchronization principles previouslydisclosed herein, that the feature 708 has been deleted from the planview window 310 and the program view window 330, and the correspondingplane is no longer highlighted in the 3-D view window 320. Furthermore,the inspection path/sequence manager has automatically responded to theediting operation to delete the motion path segments and measurementpoints associated with the deleted feature, as indicated by themodifications of the motion path representation 1725′ and displayedmeasurement points 1726′, in comparison to those illustrated in themotion path representation 1725 and displayed measurement points 1726shown in FIGS. 17-19. It should be appreciated that all of the userinterface updates outlined here may occur in all their respectiveportions of the user interface regardless of whether the editingoperations are performed in the 3D view window 320 (e.g. using thecontext sensitive menu 1925′) or the editable plan representation shownplan view window 310 (e.g. using the context sensitive menu 1925.)

While preferred implementations of the present disclosure have beenillustrated and described, numerous variations in the illustrated anddescribed arrangements of features and sequences of operations will beapparent to one skilled in the art based on this disclosure. Variousalternative forms may be used to implement the principles disclosedherein. In addition, the various implementations described above can becombined to provide further implementations. All of the U.S. patents andU.S. patent applications referred to in this specification areincorporated herein by reference, in their entirety. Aspects of theimplementations can be modified, if necessary to employ concepts of thevarious patents and applications to provide yet further implementations.

These and other changes can be made to the implementations in light ofthe above-detailed description. In general, in the following claims, theterms used should not be construed to limit the claims to the specificimplementations disclosed in the specification and the claims, butshould be construed to include all possible implementations along withthe full scope of equivalents to which such claims are entitled.

The invention claimed is:
 1. A system for programming workpiece featureinspection operations for a coordinate measuring machine, the coordinatemeasuring machine (CMM) including at least one sensor used fordetermining workpiece feature measurement data, a stage for holding aworkpiece wherein at least one of the sensor or the stage are movablerelative to one another, and a CMM control portion, the systemcomprising: a computer-aided design (CAD) file processing portion whichinputs a workpiece CAD file corresponding to a workpiece and analyzesthe file to automatically determine inspectable workpiece features onthe workpiece corresponding to a plurality of geometric feature types;and a user interface comprising: a workpiece inspection programsimulation portion configurable to display a 3-D view including at leastone of workpiece features on the workpiece and inspection operationrepresentations corresponding to inspection operations to be performedon workpiece features according to a current workpiece featureinspection plan; and an editing user interface portion comprising aneditable plan representation of the current workpiece feature inspectionplan for the workpiece corresponding to the CAD file, the editable planrepresentation comprising at least one of workpiece features orinspection operation representations, wherein: the system is configuredwith both of the 3D view and the editable plan representationautomatically reflecting results of editing operations included in afirst set of editing operations, regardless of whether the editingoperations included in the first set of editing operations are performedin the 3D view or the editable plan representation of the userinterface; the first set of editing operations comprises deleting atleast one workpiece feature in the 3D view or the editable planrepresentation of the user interface; and the 3D view and the editableplan representation are both automatically responsive to deleting the atleast one workpiece feature in the 3D view or the editable planrepresentation of the user interface, by automatically deleting the atleast one workpiece feature and associated inspection operations in boththe 3D view and the editable plan representation.
 2. The system of claim1, wherein: the first set of editing operations comprises adding atleast one workpiece feature in the 3D view or the editable planrepresentation of the user interface; and the 3D view and the editableplan representation are both automatically responsive to adding the atleast one workpiece feature in the 3D view or the editable planrepresentation of the user interface, by automatically adding the atleast one workpiece feature and associated inspection operations in boththe 3D view and the editable plan representation.
 3. The system of claim1, wherein the first set of editing operations comprises deleting atleast one inspection operation representation in the 3D view or theeditable plan representation of the user interface; and the 3D view andthe editable plan representation are both automatically responsive todeleting the at least one inspection operation representation in the 3Dview or the editable plan representation of the user interface, byautomatically deleting the at least one inspection operationrepresentation in both the 3D view and the editable plan representation.4. The system of claim 3, wherein deleting the at least one inspectionoperation representation comprises deleting a measure point locationsuch that it is no longer measured in the inspection plan.
 5. The systemof claim 3, wherein deleting the at least one inspection operationrepresentation comprises deleting a feature characteristicdetermination, such that it is no longer characterized in the inspectionplan.
 6. The system of claim 5, wherein the feature characteristicdetermination is a flatness characteristic determination.
 7. The systemof claim 1, wherein the first set of editing operations comprises addingat least one inspection operation representation in the 3D view or theeditable plan representation of the user interface; and the 3D view andthe editable plan representation are both automatically responsive toadding the at least one inspection operation representation in the 3Dview or the editable plan representation of the user interface, byautomatically adding the at least one inspection operationrepresentation in both the 3D view and the editable plan representation.8. The system of claim 1, wherein: the 3D view is automaticallyresponsive to deleting the at least one workpiece feature in theeditable plan representation of the user interface, by automaticallyperforming at least one of a) deleting an indication that the feature isan inspected feature, or b) deleting an indication of measurement pointsassociated with inspecting the deleted feature, or c) deleting anindication of a motion path between measurement points associated withinspecting the deleted feature.
 9. A system for programming workpiecefeature inspection operations for a coordinate measuring machine, thecoordinate measuring machine (CMM) including at least one sensor usedfor determining workpiece feature measurement data, a stage for holdinga workpiece wherein at least one of the sensor or the stage are movablerelative to one another, and a CMM control portion, the systemcomprising: a computer-aided design (CAD) file processing portion whichinputs a workpiece CAD file corresponding to a workpiece and analyzesthe file to automatically determine inspectable workpiece features onthe workpiece corresponding to a plurality of geometric feature types;and a user interface comprising: a workpiece inspection programsimulation portion configurable to display a 3-D view including at leastone of workpiece features on the workpiece and inspection operationrepresentations corresponding to inspection operations to be performedon workpiece features according to a current workpiece featureinspection plan; and an editing user interface portion comprising aneditable plan representation of the current workpiece feature inspectionplan for the workpiece corresponding to the CAD file, the editable planrepresentation comprising at least one of workpiece features orinspection operation representations, wherein: the system is configuredwith both of the 3D view and the editable plan representation beingautomatically responsive to editing operations included in a first setof editing operations, regardless of whether the editing operationsincluded in the first set of editing operations are performed in the 3Dview or the editable plan representation of the user interface; thefirst set of editing operations comprises deleting at least oneworkpiece feature in the 3D view or the editable plan representation ofthe user interface; the 3D view and the editable plan representation areboth automatically responsive to deleting the at least one workpiecefeature in the 3D view or the editable plan representation of the userinterface, by automatically deleting the at least one workpiece featureand associated inspection operations in both the 3D view and theeditable plan representation; the user interface further comprises anexecution time indicator that is indicative of an estimated inspectionprogram execution time for operating the CMM to execute a workpieceinspection program corresponding to the current workpiece featureinspection plan as executed by a current CMM configuration; the systemis configured with the execution time indicator being automaticallyresponsive to editing operations included in a first set of editingoperations, regardless of whether the editing operations included in thefirst set of editing operations are performed in the 3D view or theeditable plan representation of the user interface; the first set ofediting operations comprises adding or deleting at least one workpiecefeature or at least one inspection operation representation, in the 3Dview or the editable plan representation of the user interface; and theexecution time indicator is automatically responsive to update theestimated inspection program execution time corresponding to the currentworkpiece feature inspection plan as modified by the editing operationsincluded in a first set of editing operations, so as to automaticallyindicate the estimated effect of such modifications on the inspectionprogram execution time in an execution time display included in the userinterface.
 10. The system of claim 9, wherein: the first set of editingoperations comprises adding at least one workpiece feature in the 3Dview or the editable plan representation of the user interface; and the3D view and the editable plan representation are both automaticallyresponsive to adding the at least one workpiece feature in the 3D viewor the editable plan representation of the user interface, byautomatically adding the at least one workpiece feature and associatedinspection operations in both the 3D view and the editable planrepresentation.
 11. The system of claim 9, wherein: the first set ofediting operations comprises deleting at least one inspection operationrepresentation in the 3D view or the editable plan representation of theuser interface; and the 3D view and the editable plan representation areboth automatically responsive to deleting the at least one inspectionoperation representation in the 3D view or the editable planrepresentation of the user interface, by automatically deleting the atleast one inspection operation representation in both the 3D view andthe editable plan representation.
 12. The system of claim 11, whereindeleting the at least one inspection operation representation comprisesdeleting a measure point location such that it is no longer measured inthe inspection plan.
 13. The system of claim 11, wherein deleting the atleast one inspection operation representation comprises deleting afeature characteristic determination, such that it is no longercharacterized in the inspection plan.
 14. The system of claim 13,wherein the feature characteristic determination is a flatnesscharacteristic determination.
 15. The system of claim 9, wherein: thefirst set of editing operations comprises adding at least one inspectionoperation representation in the 3D view or the editable planrepresentation of the user interface; and the 3D view and the editableplan representation are both automatically responsive to adding the atleast one inspection operation representation in the 3D view or theeditable plan representation of the user interface, by automaticallyadding the at least one inspection operation representation in both the3D view and the editable plan representation.
 16. The system of claim 9,wherein: the 3D view is automatically responsive to deleting the atleast one workpiece feature in the editable plan representation of theuser interface, by automatically performing at least one of a) deletingan indication that the feature is an inspected feature, or b) deletingan indication of measurement points associated with inspecting thedeleted feature, or c) deleting an indication of a motion path betweenmeasurement points associated with inspecting the deleted feature.